# 主动抛出异常
# 应用场景：Python 提供异常类Exception，可以根据业务需要主动抛出异常【开发用】
# 使用说明：
# 创建Exception异常类对象
# 通过raise 抛出异常类对象
"""
    语法格式
    # 创建异常类对象
    异常类对象 = Exception(异常描述信息)
    # 抛出异常对象
    raise 异常类对象
"""
# 案例演示
"""
    需求：
    1. 定义 input_password 函数， 提示用户输入密码
    2. 如果用户输入长度 < 8， 抛出异常
    3. 如果用户输入长度 >=8， 返回输入的密码
"""


def input_password():
    """输入函数"""
    pwd = input("请输入密码：")
    # 判断
    if len(pwd) < 8:
        # 抛出异常：程序主动抛出的
        ex = Exception("输入密码长度不足8位")  # 实例化异常类对象
        raise ex  # 主动抛出异常
    else:
        return pwd


if __name__ == '__main__': # 直接点击，不用右键再执行
    # 捕获异常
    try:
        print(input_password())
    except Exception as e:
        print(e)
# 结论：
# 当密码长度不足8位时抛出代码中的异常信息：Exception: 密码长度不足8位
